<template>
	<div>
		<div id="components-form-demo-advanced-search">
			<a-form class="ant-advanced-search-form home-form" :form="form" @submit="handleSearch">
				<a-row :gutter="24">
					<a-col :span="8">
						<a-form-item label="关键字"><a-input autocomplete="off" class="field-right" placeholder="请输入编号/标题搜索" v-decorator="[`key`]" /></a-form-item>
					</a-col>
					<ClubSearch :span="8" label="学生组织" name="clubID" ref="clubID" @tap="searchValueFun"></ClubSearch>
					<ClubSearch :span="8" label="班级" name="classID" ref="classID" @tap="searchValueFun"></ClubSearch>
					<ClubSearch :span="8" label="申请人" name="applyUserNo" ref="applyUserNo" @tap="searchValueFun"></ClubSearch>
					<a-col :span="8">
						<a-form-item label="审批时间"><a-range-picker v-decorator="[`data`]" /></a-form-item>
					</a-col>
					<a-col :span="8">
						<a-form-item label="审核状态">
							<a-select :allowClear="true" v-decorator="['isAdopt']" placeholder="全部" optionFilterProp="children" showSearch>
								<a-select-option v-for="(item, index) in isAdoptList" :key="index" :value="item.Key">{{ item.Value }}</a-select-option>
							</a-select>
						</a-form-item>
					</a-col>
					<a-col :span="8" style="margin-top:4px;">
						<a-button-group>
						<a-button type="primary" html-type="submit" class="btn1">搜索</a-button>
						<a-button @click="handleReset" class="btn2">重置</a-button>
						</a-button-group>
					</a-col>
				</a-row>
			</a-form>
		</div>
		<div style="margin-top:20px;">
			<el-table :data="data" v-loading="loading" border :max-height="tableHeight" highlight-current-row style="width: 100%;">
				<el-table-column type="index" label="序号" width="60" fixed="left"></el-table-column>
				<el-table-column prop="No" label="编号" width="120" fixed="left">
					<template slot-scope="scope">
						{{ scope.row.No|| scope.row.ActivityNo || '暂无' }}
					</template>
				</el-table-column>
				<el-table-column prop="ActivityTitle" label="标题" min-width="130" fixed="left">
					<template slot-scope="scope">
						{{ scope.row.ActivityTitle || scope.row.TypeItemName }}
					</template>
				</el-table-column>
				<el-table-column prop="AddUserNo" label="申请人" min-width="160">
					<template slot-scope="scope">
						<a-tag color="blue">{{ scope.row.AddUserNo }}</a-tag>
						{{ scope.row.AddUserName }}
					</template>
				</el-table-column>
				<el-table-column prop="ExamTime" label="审批时间" min-width="200"></el-table-column>
				<el-table-column prop="ChargeUserNo" label="审批节点" min-width="280" show-overflow-tooltip>
					<template slot-scope="scope">
						<a-tag color="blue">{{ scope.row.FlowTypeName }}</a-tag>
					</template>
				</el-table-column>
				<el-table-column prop="ChargeUserNo" label="审批结果" width="90">
					<template slot-scope="scope">
						<a-tag :color="scope.row.IsAdopt?'blue':'red'">{{ scope.row.IsAdopt?'通过':'驳回' }}</a-tag>
					</template>
				</el-table-column>
				<el-table-column prop="ChargeUserNo" label="审批信息" min-width="120" show-overflow-tooltip>
					<template slot-scope="scope">
						{{ scope.row.ExamComment }}
					</template>
				</el-table-column>
				<el-table-column label="操作" width="120" fixed="right">
					<template slot-scope="scope">
						<!-- <oprateBtn title="修改" icon="icon-editor1" color="green" @tap="seeList(scope.row, 'ActivityFlowUpdate',1)"></oprateBtn> -->
						<a-tooltip placement="top">
							<template slot="title"><span>详情</span></template>
							<i class="iconfont icon-xiangqing" style="color: #1890FF;" @click="seeList(scope.row, 'ActivityFlowDetail', 2)"></i>
						</a-tooltip>
					</template>
				</el-table-column>
			</el-table>
			<el-pagination
				@size-change="handleSizeChange"
				@current-change="handleCurrentChange"
				:current-page="pagination.currentPage"
				:page-sizes="pagination.pageSizeOptions"
				:page-size="pagination.pageSize"
				layout="total, sizes, prev, pager, next, jumper"
				:total="pagination.total"
			></el-pagination>
		</div>
	</div>
</template>

<script>
import moment from 'moment';
import ClubSearch from '@/components/SearchForm/ClubSearch.vue'
import Func from '@/utils/func';
import { GetAlreadyExamPageListActivityFlow, DeleteActivity, GetActivityStateList, GetClubPageListCommon, GetUserList,GetClassList} from '@/api/follow';
const data = [];
export default {
	props:{
		flowTypeID:String
	},
	watch:{
		flowTypeID: function(flowTypeID) {
			this.nowflowTypeID = flowTypeID
			this.getList()
		}
	},
	components: {
		ClubSearch
	},
	data() {
		return {
			applyIf: false,
			data,
			form: this.$form.createForm(this, {
				name: 'advanced_search'
			}),
			pagination: {
				currentPage: 1,
				pageSize: this.global.pageSize,
				pageSizeOptions: this.global.pageSizeOptions, // 每页中显示的数据
				showTotal: total => `共有 ${total} 条数据` // 分页中显示总的数据
			},
			addIf: false,
			text: {},
			visible: false,
			confirmLoading: false,
			itemId: '',
			departmentList: [],
			worklist: [],
			loading: false,
			values: {},
			tableHeight: parseFloat(window.innerHeight - 160),
			ActivityStateList: [],
			ClubList: [],
			tabkey: 1,
			userList: [],
			fetching: false,
			isAdoptList: this.global.isAdoptList,
			nowflowTypeID:'',
			ClassList:[]
		};
	},
	computed: {},
	created() {
		// this.getList();
		// this.getOtherList();
	},
	mounted() {},
	methods: {
		moment,
		searchValueFun(name,value){
			this.values = { ...this.values,[name]:value }
		},
		async fetchClass(value) {
			this.fetching = true;
			let myReg = /^[^a-zA-Z]+$/;
			if (value && value.length > 1) {
				let data = {};
				data.key = value;
				data.top = 20;
				let res = await GetClassList(data);
				this.fetching = false;
				this.ClassList = res.data.data;
			}
		},
		tabChange(key) {
			this.tabkey = key;
		},
		filterOption(input, option) {
			return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0;
		},
		async fetchUser(value) {
			this.fetching = true;
			let myReg = /^[^a-zA-Z]+$/;
			if (value && value.length>1) {
				let data = {};
				data.key = value;
				data.top = 20;
				let res = await GetUserList(data);
				this.fetching = false;
				this.userList = res.data.data;
			}
		},
		async fetchClub(value) {
			let myReg = /^[^a-zA-Z]+$/;
			if (value && value.length>1) {
				let data = {};
				data.key = value;
				let res = await GetClubPageListCommon(data);
				this.ClubList = res.data.data;
			}
		},
		handleSearch(e) {
			e.preventDefault();
			this.form.validateFields((error, values) => {
				this.pagination.currentPage = 1;
				if (values.data && values.data.length > 0) {
					values.startTime = values.data[0].format('YYYY-MM-DD');
					values.endTime = values.data[1].format('YYYY-MM-DD');
				}
				this.values = { ...this.values,...values };
				this.getList();
			});
		},
		handleReset() {
			this.form.resetFields();
			this.values = {};
			this.$refs.clubID.value = undefined
			this.$refs.classID.value = undefined
			this.$refs.applyUserNo.value = undefined
			this.getList();
		},
		handleSizeChange(val) {
			this.pagination.pageSize = val;
			this.getList();
		},
		handleCurrentChange(val) {
			this.pagination.currentPage = val;
			this.getList();
		},
		async getList() {
			this.loading = true;
			let data = {};
			if (this.values) {
				data = this.values;
			}
			data.pageIndex = this.pagination.currentPage;
			data.pageSize = this.pagination.pageSize;
			data.flowTypeID = this.nowflowTypeID
			let res = await GetAlreadyExamPageListActivityFlow(data);
			this.loading = false;
			this.data = res.data.data;
			const pagination = { ...this.pagination };
			pagination.total = res.data.pageInfo.TotalItemCount;
			this.pagination = pagination;
		},
		async getOtherList() {
			let res = await GetActivityStateList();
			this.ActivityStateList = res.data.data;
		},
		addList() {
			this.text = {};
			this.addIf = !this.addIf;
		},
seeList(text, name,type) {
			this.$router.push({
				name: name,
				query: {
					ID: text.ID,
					ActivityID: text.ActivityID,
					followId:text.ID,
					type:type,
				}
			});
		},
		// seeList(text, name, type) {
		// 	let path = 'ActivityFlowDetail';
		// 	this.$router.push({
		// 		name: path,
		// 		query: {
		// 			ID: text.ID,
		// 			ActivityID: text.ActivityID,
		// 			type: type
		// 		}
		// 	});
		// },
		applyHander(item) {
			this.text = item;
			this.applyIf = true;
		},
		closeFun() {
			this.applyIf = false;
			this.getList();
		}
	}
};
</script>

<style lang="less" scoped>
.home-form /deep/.ant-form-item {
	display: flex;
	margin-bottom: 10px !important;
}
.home-form /deep/.ant-form-item-label {
	width: 80px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	text-align: right;
}
.home-form /deep/.ant-form-item-control-wrapper {
	flex: 1;
}
/deep/.el-table th.is-leaf {
	background: #fafafa;
}
/deep/.el-table td,
/deep/.el-table th {
	padding: 5px;
}
.option {
	margin-top: 10px;
	margin-bottom: 20px;
	overflow: hidden;
}
.option .btn {
	height: 36px;
	line-height: 36px;
	padding: 0 10px;
	float: left;
	background: #1890ff;
	color: #fff;
	margin-right: 10px;
	border-radius: 3px;
	cursor: pointer;
	border: none;
}
.foot {
	text-align: center;
	margin-top: 100px;
}
.el-pagination {
	margin-top: 10px;
}
</style>
